//package com.ruoyi.web.controller.ly;
//
//import com.alibaba.fastjson2.JSON;
//import com.ruoyi.common.core.domain.AjaxResult;
//import com.ruoyi.common.utils.InputStreamUtil;
//import com.ruoyi.common.utils.SnowflakeUtils;
//import com.ruoyi.common.utils.ThreadPoolUtil;
//import com.ruoyi.system.domain.Archive;
//import com.ruoyi.system.domain.MongoArchive;
//import com.ruoyi.system.thread.ArchiveTask;
//import com.ruoyi.system.domain.TestUser;
//import com.ruoyi.system.thread.MongoArchiveHistoryTask;
//import lombok.extern.slf4j.Slf4j;
//import org.springframework.data.domain.Sort;
//import org.springframework.data.mongodb.core.MongoTemplate;
//import org.springframework.data.mongodb.core.query.Criteria;
//import org.springframework.data.mongodb.core.query.Field;
//import org.springframework.data.mongodb.core.query.Query;
//import org.springframework.data.mongodb.core.query.Update;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RestController;
//
//import javax.annotation.Resource;
//import java.io.InputStream;/*
//import java.util.*;
//import java.util.concurrent.ThreadPoolExecutor;
//
//@RestController
//@RequestMapping("/mongo")
//@Slf4j
//public class MongoTest {
//
//    @Resource
//    private MongoTemplate mongoTemplate;
//
//    static ThreadPoolExecutor threadPool = ThreadPoolUtil.getThreadPool();
//
//    @GetMapping("/add")
//    public void test(){
//        for (int i = 0; i < 100; i++) {
//            ArchiveTask archiveTask = new ArchiveTask(mongoTemplate);
//            threadPool.submit(archiveTask);
//        }
//        Map<String,String> map = new HashMap<>();
//        map.entrySet().stream().forEach(p -> p.getKey());
//        List<String> list = new ArrayList<>();
//        log.info("数据添加完成");
//    }
//
//    @GetMapping("/getData")
//    public AjaxResult getData(Archive archive){
//        String parentId = archive.getParentId();
//        Query query = new Query();
////        query.addCriteria(Criteria.where("parentId").is(parentId));
//        query.addCriteria(Criteria.where("createdTime").gt("2024-06-26 10:00:00"));
//        List<Archive> archives = mongoTemplate.find(query, Archive.class);
//        return AjaxResult.success(archives);
//    }
//
//
//    @RequestMapping("/addJmeter")
//    public void addJmeter(){
//        Random random = new Random();
//        int data = random.nextInt(3);
//        if (data == 0){
//            List<Archive> list = new ArrayList<>();
//            for (int i = 0; i < 20; i++) {
//                Archive archive = new Archive();
//                archive.setCategory("score" + i);
//                archive.setParentId(SnowflakeUtils.nextOrderId());
//                StringBuilder sub = new StringBuilder();
//                sub.append(UUID.randomUUID()).append(UUID.randomUUID()).append(UUID.randomUUID()).append(UUID.randomUUID());
//                archive.setContent(sub.toString());
//                list.add(archive);
//            }
//            mongoTemplate.insertAll(list);
//        }else if (data == 1){
//            String parentPrefix = "2024053110106";
//            Query query = new Query();
//            int i = new Random().nextInt(10);
//            Field field = new Field();
//            query.addCriteria(Criteria.where("parentId").is(parentPrefix + i));
//            query.with(Sort.by(Sort.Order.asc("createdTime")));
//            query.skip(0).limit(100);
//            mongoTemplate.count(query, TestUser.class);
//            log.info(mongoTemplate.find(query, Archive.class) + "");
//        }else if (data == 2){
//            String parentPrefix = "2024053110106";
//            Query query = new Query();
//            //过滤掉被逻辑删除的数据
//            int i = new Random().nextInt(10);
//            query.addCriteria(Criteria.where("parentId").is(parentPrefix + i));
//            Update update = new Update().set("content","nasodhsadb");
//            mongoTemplate.updateMulti(query,update, Archive.class);
//        }
//        TestUser user = new TestUser();
//        user.setId(SnowflakeUtils.nextOrderId());
//        user.setUsername("zhs");
//        user.setPassword("123456");
//        user.setCreatedTime(new Date());
//        user.setUpdatedTime(new Date());
//        mongoTemplate.insert(user);
//        log.info("数据添加完成");
//    }
//
//    @GetMapping("/input")
//    public AjaxResult input(){
//        InputStream inputStream = InputStreamUtil.getArchiveInputStream();
//        String archiveContent = InputStreamUtil.unGzipInputStream(inputStream);
//        Map<String, Object> map = JSON.parseObject(archiveContent, Map.class);
//        System.out.println(map);
//        return AjaxResult.success();
//    }
//
//    public static void main(String[] args) {
//        Long i = 135L;
//        Long j = 135L;
//        System.out.println(i == j);
//        System.out.println(i.equals(j));
//    }
//
//    @GetMapping("/addMongoArchive")
//    public void addMongoArchive(){
//        for (int i = 0; i < 10; i++) {
//            MongoArchiveHistoryTask archiveTask = new MongoArchiveHistoryTask(mongoTemplate);
//            threadPool.submit(archiveTask);
//        }
//        log.info("数据添加完成");
//    }
//
//
//
//}
